\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500}{
\section{Zebulon::Roboteq::AX3500 Class Reference}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500}\index{Zebulon::Roboteq::AX3500@{Zebulon::Roboteq::AX3500}}
}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_1_1_callback_data}{CallbackData}
\item 
class \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_1_1_message}{Message}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a28021d849e7ffd26dffc19a9e31ee8a8}{
typedef void($\ast$ {\bfseries ResponseFunctionCallback} )(const \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_1_1_message}{AX3500::Message} $\ast$response, void $\ast$)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a28021d849e7ffd26dffc19a9e31ee8a8}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_af7433c4c5b9aa2f4a9b7fd86cd3a5f07}{
int {\bfseries Initialize} (const std::string \&port)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_af7433c4c5b9aa2f4a9b7fd86cd3a5f07}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a4c36364c5646c1b7f72845d114bdfc3d}{
int {\bfseries Shutdown} ()}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a4c36364c5646c1b7f72845d114bdfc3d}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a157229b41a06478efd9bad25f131dc4b}{
int {\bfseries TransmitMessage} (const std::string \&msg, \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_1_1_message}{AX3500::Message} $\ast$$\ast$response)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a157229b41a06478efd9bad25f131dc4b}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_aac943ab07f9b9c31bdd546455880ca79}{
int {\bfseries EnterWatchdogMode} ()}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_aac943ab07f9b9c31bdd546455880ca79}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ada446a24e91772228a7851ec1e0e997d}{
int {\bfseries LeaveWatchdogMode} ()}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ada446a24e91772228a7851ec1e0e997d}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a1765425b2a6baced75a6cb1cf626be6b}{
int {\bfseries ResetController} ()}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a1765425b2a6baced75a6cb1cf626be6b}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a1159cf84a683848d6295a92af9206aa9}{
int {\bfseries SendMotorCommand} (const char channel, const char value, bool confirm=false)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a1159cf84a683848d6295a92af9206aa9}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a27eed4bf582677b83b6d7202f7d353ed}{
int {\bfseries SendDualMotorCommand} (const double percentChannelOne, const double percentChannelTwo, const bool confirm=false)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a27eed4bf582677b83b6d7202f7d353ed}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_abade91697bf1566323bb41a866341163}{
int {\bfseries QueryMainBatteryVoltage} (double \&mainBattery, double \&internalVoltage)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_abade91697bf1566323bb41a866341163}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_adbe1577e76bed2580ca6f3edd0f603a0}{
int {\bfseries QueryEncoder} (const int encoder, const bool relative)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_adbe1577e76bed2580ca6f3edd0f603a0}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_aabbf2f38c37343ce95fe426d892bde7f}{
int {\bfseries QueryEncoder} (const int encoder, int \&value, const bool relative)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_aabbf2f38c37343ce95fe426d892bde7f}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ab2485e6c2ecaf44606e4b00eaea60c63}{
int {\bfseries QueryEncoders} (int \&enc1, int \&enc2, const bool relative)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ab2485e6c2ecaf44606e4b00eaea60c63}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ad47ab7e8afecb0e8ba47b4cc215271c9}{
bool {\bfseries IsConnected} () const }
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ad47ab7e8afecb0e8ba47b4cc215271c9}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a32acb7e06cb0ba306e17075ecd80d903}{
bool {\bfseries IsInWatchdogMode} () const }
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a32acb7e06cb0ba306e17075ecd80d903}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a1de041df5318ab397cda7dd4e339407c}{
void {\bfseries RegisterCallback} (const char messageType, ResponseFunctionCallback callback, void $\ast$args)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a1de041df5318ab397cda7dd4e339407c}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a06cee17e406d2ed4d2052b08a467ddf4}{
void {\bfseries ClearCallback} (const char messageType)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a06cee17e406d2ed4d2052b08a467ddf4}

\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ae7718febeda53a5732195a1c65cb2ebe}{
static unsigned char {\bfseries HexToByte} (const char hex)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ae7718febeda53a5732195a1c65cb2ebe}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a250702f5c974028b9069971605645f3f}{
static int {\bfseries HexToInt} (const char hex)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a250702f5c974028b9069971605645f3f}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ae1ba389e17683cbd5f5557601e394ce6}{
static unsigned char {\bfseries HexToUnsignedByte} (const char upper, const char lower)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ae1ba389e17683cbd5f5557601e394ce6}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_aeec7b65955230e78af3d93d96842e406}{
static char {\bfseries HexToSignedByte} (const char upper, const char lower)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_aeec7b65955230e78af3d93d96842e406}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a2ebcde716dbabf02e11c4bb06f7a43d7}{
static void {\bfseries UnsignedByteToHex} (const unsigned char byte, char \&upper, char \&lower)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a2ebcde716dbabf02e11c4bb06f7a43d7}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a9c58191bc85b4119d7b2cf4ec500839c}{
static void {\bfseries SignedByteToHex} (const char byte, char \&upper, char \&lower)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a9c58191bc85b4119d7b2cf4ec500839c}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a569bc0de8942fdac131a3ace10f4b5ae}{
void {\bfseries AddToMessageQueue} (\hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_1_1_message}{AX3500::Message} $\ast$msg)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a569bc0de8942fdac131a3ace10f4b5ae}

\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a43589d5ba9f354b806e57052ebb84501}{
unsigned int {\bfseries ReadQueryMessage} (const char $\ast$buffer, const unsigned int len)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a43589d5ba9f354b806e57052ebb84501}

\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ab24075049217177dfe61d9c6b3caa0bb}{
static void {\bfseries ReceiveThreadFunction} (void $\ast$args)}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ab24075049217177dfe61d9c6b3caa0bb}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a10a89671f219bb87cacaba248e04e359}{
CxUtils::Mutex \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_a10a89671f219bb87cacaba248e04e359}{mMessageQueueMutex}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a10a89671f219bb87cacaba248e04e359}

\begin{DoxyCompactList}\small\item\em Mutex for message queue. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ae7359174ad8862b76acfab18abf847d4}{
CxUtils::Mutex \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_ae7359174ad8862b76acfab18abf847d4}{mTransmittingMutex}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ae7359174ad8862b76acfab18abf847d4}

\begin{DoxyCompactList}\small\item\em Mutex for transmitting messages. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a1b51608bd876af5216afe27872e8e0a9}{
CxUtils::Thread \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_a1b51608bd876af5216afe27872e8e0a9}{mReceiveThread}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a1b51608bd876af5216afe27872e8e0a9}

\begin{DoxyCompactList}\small\item\em Thread for continuous message receiving. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a6a4d2906f10da2f9918037a5421522f8}{
CxUtils::Serial \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_a6a4d2906f10da2f9918037a5421522f8}{mSerialPort}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a6a4d2906f10da2f9918037a5421522f8}

\begin{DoxyCompactList}\small\item\em Serial port interface for board. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a74f167a250931c45084c7786c73e8c58}{
CxUtils::Mutex \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_a74f167a250931c45084c7786c73e8c58}{mCallbacksMutex}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a74f167a250931c45084c7786c73e8c58}

\begin{DoxyCompactList}\small\item\em Mutex for thread protection of callbacks. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_ab1ac0e97733f763c3c4c56ae1bc8309f}{
Message::List \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_ab1ac0e97733f763c3c4c56ae1bc8309f}{mMessageQueue}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_ab1ac0e97733f763c3c4c56ae1bc8309f}

\begin{DoxyCompactList}\small\item\em Stores list of all messages received from board. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a600b2f9ff6e0247b2d93841e46cf494b}{
volatile bool \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_a600b2f9ff6e0247b2d93841e46cf494b}{mWatchDogModeFlag}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a600b2f9ff6e0247b2d93841e46cf494b}

\begin{DoxyCompactList}\small\item\em Indicates the board is in watchdog mode. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_abdda928513c83b8b4c95abaf49dd4389}{
volatile bool \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_abdda928513c83b8b4c95abaf49dd4389}{mEnterWatchDogModeFlag}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_abdda928513c83b8b4c95abaf49dd4389}

\begin{DoxyCompactList}\small\item\em If true, interface always attempts to maintain wathdog mode. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_a7fdb0f4ed04b088fff3cf17cc422b5be}{
unsigned int \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_a7fdb0f4ed04b088fff3cf17cc422b5be}{mMaxQueueSize}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_a7fdb0f4ed04b088fff3cf17cc422b5be}

\begin{DoxyCompactList}\small\item\em Sets the maximum size of queue for received messages. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_roboteq_1_1_a_x3500_abf9753dcc26400b95afc1c8bf8f4773c}{
std::map$<$ char, \hyperlink{class_zebulon_1_1_roboteq_1_1_a_x3500_1_1_callback_data}{CallbackData} $>$ {\bfseries mCallbacks}}
\label{class_zebulon_1_1_roboteq_1_1_a_x3500_abf9753dcc26400b95afc1c8bf8f4773c}

\end{DoxyCompactItemize}


The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
C:/Users/Matt/Documents/School/Robotics/zebulon/v2/roboteq/include/roboteq/\hyperlink{ax3500_8h}{ax3500.h}\end{DoxyCompactItemize}
